DB복구. MSSQL 2005 DB복구법 (MSSQL DB 2005 restore method)[DB복구,MSSQL,2005,복구방법,DB되살리기,데이타베이스,database]

이미지출처 : mehmet-ozdemir.com.tr

수백기가의 데이터베이스가! 갑자기 번개를 한번 맞더니 몽땅 날아가버렸다면..

정말 토나오는 일이다.-_-;



하지만 복구 할 수 있는 길은 열려있었으니..



1. 로그와 데이터 모두 살아있을 때 복구법 : sp_attach_db ‘DB명’, ‘경로\파일명.mdf’ , ‘경로\파일명_log.ldf’

2. 데이터 파일만 살아있을 때 복구법 : sp_attach_single_file_db ‘DB명’, ‘경로\파일명.mdf’

3. 데이터 파일만 남기고 삭제하고 싶을때 : sp_detach_db



이 방법들은 정상적으로 종료가 되었을때만 사용 가능하다.



번개를 맞아서 컴퓨터가 다운되었다면, 이 방법은 안통한다.



그런일이 있다면 다행히 ldf파일만 손상을 입고 mdf파일은 손상을 입지 않았다면 복구 할 수 있는 방법이 있다.



- 원래 DB와 동일 이름의 DB를 생성한다. (mdf 파일명과 크기도 같게..)

- 생성한 DB를 긴급 모드로 변경한다. : alter database dbname set emergency

- SQL 서버를 멈춘다.

- 생성한 DB의 mdf,ldf파일을 삭제하고 복구할 mdf파일들을 복사해온다.(로그파일 제외)

- SQL 서버를 재시동한다.

- 오브젝트와 데이터들이 관리자에게 접근가능하지만, 여전히 백업도 안되고 온라인상태가 되지도 않는다.

- 스크립트 생성 마법사로 모든데이터 오브젝트를 스크립트로 만든다.(스크림팅 오브젝트 권한,의존 오브젝트들,인덱스들 포함;파일로 내보낸다.)

- 새로운 두번째 DB를 생성한다.

- 새로운 DB에서 모든 오브젝트가 생성되 때까지 여러번 스크립트를 실행한다.

- 데이터 불러오기 마법사로 모든 살아있는 테이블을 새로운 DB에 넣는다.

- 새로운 DB를 백업하고 긴급모드에 들어가있는 DB에 복원한다.



끝!



----

Open english content